<?php

class Application_Model_DbTable_Usuarios extends Zend_Db_Table_Abstract
{

    //nombre de la tabla de la db a la que hace referencia
    protected $_name = 'usuario';
    
    /**
     * devuelve un arreglo con los datos del album con id=$id
     * @param  $id id del album
     * @return  arreglo asociativo
     */
    public function get($id)
    {
        $id = (int) $id;
        //$this->fetchRow devuelve fila donde id = $id
        $row = $this->fetchRow('id = ' . $id);
        if (!$row)
        {
            throw new Exception("Could not find row $id");
        }
        //formateo fecha a dia-mes-año para que se vea mejor
        //$fecha = $row->fecha;
        //$fecha = date("d-m-Y", strtotime($fecha));
//        die($fecha);
        //$row->fecha = $fecha;
        return $row->toArray();
    }

    /**
     *  agrega un nuevo album a la base de datos
     * @param  $id
     * @param  $nick
     * @param  $fecha fehca de registro de este album en la base de datos
     * @param  $idtipousuario
     */
    public function agregar($nick, $pass, $tipo_Usuario_Id)
    {
        $data = array('nick' => $nick, 'pass' => $pass,
            'idTipoUsuario' => $tipo_Usuario_Id);
        //$this->insert inserta nuevo album
        $this->insert($data);
    }

    /**
     * modifica los datos del album id= $id
     * @param  $id
     * @param  $nick
     * @param  $pass
     * @param  $idtipousuario
     */
    public function cambiar($id, $nick, $pass, $idtipousuario)
    {
        $data = array('nick' => $nick, 'pass' => $pass,
            'idTipoUsuario' => $idtipousuario);
        //$this->update cambia datos de album con id= $id
        $this->update($data, 'id = ' . (int) $id);
    }

    /**
     * borra el album con id= $id
     * @param  $id
     */
    public function borrar($id)
    {
        //$this->delete borrar album donde id=$id
        $this->delete('id =' . (int) $id);
    }

    public function listar()
    {
        //select usuario.id, usuario.nick, usuario.pass, idTipoUsuario.descripcion 
        //from usuario inner join tipousuario on usuario.idTipoUsuario = tipousuario.id
        
        $select = $this->select()->setIntegrityCheck(false)
             ->from(array('p' => 'usuario'),
                    array('id', 'nick', 'pass'))
             ->join(array('l' => 'tipousuario'),
                    'p.idTipoUsuario = l.id',
                    array('descripcion') ); // empty list of columns
 
        return $this->fetchAll($select);
        
    }


}

